//函数的扩展：

/**
 * 1>参数的默认值
 * 
 * 2>rest参数  格式： ...变量名
 * 
 * 1）必须放在所有参数的最后
 * 
 * 2）剩余参数组成的数组
 * 
 * 3>箭头函数
 * 
 * 特点：
 * 
 * 1)不能当做构造函数
 * 
 * 2）this指向  es5 this ----> 调用对象  es6 this ---> 定义函数时所在的对象
 * 
 * 3）没有auguments
 * 
*/

// function ajax(type,url){
//     type = type || 'get';
//     console.log(type)
// }

// function ajax(type='get',url){
//     console.log(type)
// }

// ajax(0)

function sum(str,...n){
    
    // console.log(Array.prototype.slice.call(arguments));
   
    console.log(n);
    return n.reduce((pre,cur) => pre + cur)
}


console.log(sum('求和',1,2,3,4,5,6));

let arr = [
    {
        title:'流浪地球',
        price:50
    },
    {
        title:'流浪地球2',
        price:50
    }
];

let target = arr.map(item => {
    // console.log(arguments);
    item.price  = `￥${item.price}`;
    return item
})

// let Person = (name) =>{
//     this.name = name
// }


// let person1 = new Person('lili');


// 1>触发函数

// 2>修改函数内部this的指向，指向实例

// 3>返回实例

let count = 10;

let countObj = {
    count:1,
    add(){
        function setCount1(){
            console.log(this);//window
            console.log(this.count); //undefined
        }

        let setCount2 = () => {
            console.log(this);  //countObj
            console.log(this.count); //1
        }

        setCount1();
        setCount2();
    }
}

countObj.add();



